package com.shinbada.modules.sys.mapper;

import com.shinbada.core.persistence.BaseMapper;
import com.shinbada.modules.sys.entity.DictValue;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 数据字典MAPPER接口
 *
 * @author initcap
 * @version 2017-01-16
 */
@Mapper
@Repository
public interface DictValueMapper extends BaseMapper<DictValue> {

    /**
     * 统计字典类型下的键值
     *
     * @param id        主键
     * @param typeId    类型
     * @param value     键值
     * @param companyId 机构标识
     * @return 个数
     */
    int countDictValue(@Param("id") String id, @Param("companyId") String companyId, @Param("typeId") String typeId, @Param("value") String value);

    /**
     * 根据类型获取键值对
     *
     * @param type      字典类型
     * @param companyId 机构标识
     * @return 键值对集合
     */
    List<DictValue> listByType(@Param("type") String type, @Param("companyId") String companyId);

    /**
     * 根据机构标识获取字典键值对
     *
     * @param companyId 机构标识
     * @return 键值对集合
     */
    List<DictValue> listByCompanyid(@Param("companyId") String companyId);

    /**
     * 统计机构标识
     *
     * @param companyId 统计
     * @return 个数
     */
    int countByCompanyid(@Param("companyId") String companyId);

    /**
     * 清理指定机构的数据
     *
     * @param companyId 机构标识
     */
    void clearCompanyId(@Param("companyId") String companyId);
}
